// import com.alibaba.druid.sql.ast.SQLExpr_ptr;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../SQLStatementImpl.h"
#include "SQLDDLStatement.h"

class SQLAlterProcedureStatement : virtual public SQLStatementImpl /*implements SQLAlterStatement*/
{
public:
  SQLExpr_ptr name;

  BOOL_ptr compile;
  BOOL_ptr reuseSettings;

  SQLExpr_ptr comment;
  BOOL_ptr languageSql;
  BOOL_ptr containsSql;
  SQLExpr_ptr sqlSecurity;

  SHAREDOBJECT(SQLAlterProcedureStatement);
  void accept0(SQLASTVisitor_ptr visitor);

  SQLExpr_ptr getName();

  void setName(SQLExpr_ptr name);

  BOOL_ptr isCompile();

  void setCompile(BOOL_ptr compile);

  BOOL_ptr isReuseSettings();

  void setReuseSettings(BOOL_ptr reuseSettings);

  BOOL_ptr isLanguageSql();

  void setLanguageSql(BOOL_ptr languageSql);

  BOOL_ptr isContainsSql();

  void setContainsSql(BOOL_ptr containsSql);

  SQLExpr_ptr getSqlSecurity();

  void setSqlSecurity(SQLExpr_ptr sqlSecurity);

  SQLExpr_ptr getComment();

  void setComment(SQLExpr_ptr comment);

  // @Override
  SQLDDLStatement::DDLObjectType getDDLObjectType();
};
